<?php
class UsuarioVipsController extends AppController {

	var $name = 'UsuarioVips';
	var $uses = array('UsuarioVip', 'Usuario');
	
	function beforeFilter() {
		parent::beforeFilter();
		$this->Auth->allow('registro_vip');
	}

	function index() {
		$this->UsuarioVip->recursive = 0;
		$this->set('usuarioVips', $this->paginate());
	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Usuario vip erróneo', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('usuarioVip', $this->UsuarioVip->read(null, $id));
	}

	function registro_vip(){
		$user = $this->Auth->user();
		$id = $user['Usuario']['id'];
		if (!$id) {
			$this->Session->setFlash(__('Debes estar registrado para poder convertirte en Usuario Vip', true));
			$this->redirect(array('controller' => 'usuarios', 'action' => 'registro'));
		}
		$basic_user = $this->Usuario->findById($id);
		$this->set('id', $id);
		$this->set('user', $basic_user);
		$intereses = $this->Usuario->Interese->find('list');
		$this->set(compact('intereses'));
		
		if (!empty($this->data)) {
			if (!isset($this->data['UsuarioVip']['cc']) || !isset($this->data['UsuarioVip']['tarjeta'])) {
				return false;
			}
			if (!$this->data['UsuarioVip']['condiciones']) {
				$this->Session->setFlash(__('Debes aceptar las condiciones de DULCISSIMAS', true));
				return false;
			}
			$exito = __('<p>Te has registrado satisfactoriamente</p>'.
				'<p>Tu condición de usuario_vip no se hará efectiva hasta que confirmemos el pago, '.
				'en ese momento serás comunicado vía mail de tu nuevo estado</p>', true);
			$this->data['UsuarioVip']['usuario_id'] = $id;
			$this->Usuario->create();
			if ($this->UsuarioVip->save($this->data)) {
				//TODO Pasarela de pago o Paypal
				$this->Session->setFlash($exito);
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('Ocurrió algún error al guardar tus datos. Por favor, inténtalo de nuevo.', true));
			}
		}
	}

	function add() {
		$this->redirect(array('action' => 'registro_vip'));
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Usuario vip erróneo', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->UsuarioVip->save($this->data)) {
				$this->Session->setFlash(__('El usuario vip se ha modificado', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('El usuario vip no se ha podido modificar. Por favor, inténtelo de nuevo', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->UsuarioVip->read(null, $id);
		}
		$usuarios = $this->UsuarioVip->Usuario->find('list');
		$interese = $this->UsuarioVip->Interese->find('list');
		$this->set(compact('usuarios', 'interese'));
	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Usuario vip erróneo', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->UsuarioVip->Usuario->updateAll(array('permiso_id' => '2'), array('id' => $this->UsuarioVip->usuario_id));
		if ($this->UsuarioVip->delete($id)) {
			$this->Session->setFlash(__('Usuario vip eliminado', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->UsuarioVip->Usuario->updateAll(array('permiso_id' => '3'), array('id' => $this->UsuarioVip->usuario_id));
		$this->Session->setFlash(__('El usuario vip no se ha eliminado', true));
		$this->redirect(array('action' => 'index'));
	}
	
	function admin_index() {
		$this->layout = 'admin_layout';
		$this->UsuarioVip->recursive = 0;
		$this->set('usuarioVips', $this->paginate());
	}

	function admin_view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Usuario vip erróneo', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('usuarioVip', $this->UsuarioVip->read(null, $id));
	}

	function admin_add() {
		if (!empty($this->data)) {
			$this->UsuarioVip->create();
			if ($this->UsuarioVip->save($this->data)) {
				$this->Session->setFlash(__('Nuevo usuario vip creado', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('El usuario vip no se ha creado. Por favor, inténtalo de nuevo.', true));
			}
		}
		$usuarios = $this->UsuarioVip->Usuario->find('list');
		$this->set(compact('usuarios'));
	}

	function admin_delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Usuario vip erróneo', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->UsuarioVip->delete($id)) {
			$this->Session->setFlash(__('Usuario vip eliminado', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('El usuario vip no fue eliminado', true));
		$this->redirect(array('action' => 'index'));
	}
	
	function admin_activar($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Usuario erróneo', true));
			$this->redirect(array('action' => 'index'));
		}
		if ($this->UsuarioVip->updateAll(array('UsuarioVip.activo' => '1'), array('UsuarioVip.id' => $id))) {
			$this->Session->setFlash(__('El usuario Vip se ha activado correctamente', true));
		} else {
			$this->Session->setFlash(__('Ocurrió algún problema al activar el usuario Vip. Por favor, inténtalo de nuevo.', true));
		}
		$this->layout = 'admin_layout';
		$this->redirect(array('action' => 'index'));
	}
	
	function admin_desactivar($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Usuario erróneo', true));
			$this->redirect(array('action' => 'index'));
		}
		if ($this->UsuarioVip->updateAll(array('UsuarioVip.activo' => '0'), array('UsuarioVip.id' => $id))) {
			$this->Session->setFlash(__('El usuario Vip se ha desactivado correctamente', true));
		} else {
			$this->Session->setFlash(__('Ocurrió algún problema al desactivar el usuario Vip. Por favor, inténtalo de nuevo.', true));
		}
		$this->layout = 'admin_layout';
		$this->redirect(array('action' => 'index'));
	}
	
}
